An electronic device may include multiple processors or processors with multiple execution cores. Read-only memory (ROM) and random access memory (RAM) are physically implemented in electronic devices and communicatively coupled to electronic devices.
Applications and processes running on an electronic device may share access to the same physical memory. Shared memory may refer to a block of RAM that can be accessed by several different central processing units (CPUs) or cores in a multiprocessor computer system. The applications may be running on these multiple cores. To implement shared memory, the system may use uniform memory access. In such a case, all the cores share the physical memory uniformly. The system may instead use non-uniform memory access. In such a case, memory access time depends on the memory location relative to a processor. In still other cases, a system may use a cache memory architecture. This may be the most common implementation, wherein local memories or caches for each core may be used and, when needed, additional contents fetched from main memory. A shared memory system may be relatively easy to program since all processors share a single view of data.